查看原文
其他

爬豆瓣电影名的小案例2(附视频操作)

2017-03-16 大邓 大邓带你玩python

请输入标题     bcdef

上一篇只是对一个网页进行的数=数据提取,还不算完整的的爬虫。

请输入标题     abcdefg

我理解的一个初级的爬虫脚本应该包括三部分:

1、网址处理器,用来提供抓取网址对象

2、网页解析器,用来提取网页中稀疏分散着的目标数据

3、数据存储器,用来保存提取的数据。

上一节的小例子,只涉及到第二部分,第一部分不完整,第三部分没涉及。

请输入标题     bcdef

网址处理器

做爬虫前,先分析要抓网页的网址规律,通过规律构建每一个待抓页面的网址


网址解析器

做爬虫,先分析一个网址上的数据提取规则,推而广之将规律应用到待爬网站的所有的网址上。注意可能有点网页数据是空的,应该考虑try。。。except。。。处理异常情况出现。


数据存储器

入门的爬虫,要爬的数据量一般不是很大,可以用txt,csv等进行保存,保存时注意读写方式(‘a’ , w',‘a+’),推荐使用'a+'。,编码方式使用utf-8即

f = open(path,'a+',encoding='utf-8')来建保存数据的文件。


请输入标题     abcdefg

爬虫注意事项:

1、爬虫的访问速度不要太快,尽量使用time.sleep(1),降低访问网站的频率,做有道德合法公民。如果你太狠了,造成人家服务器瘫痪,属于犯法行为。

2、咱们的访问的网页数目比较少,如果特别多,访问到一定程度之后,人家网站可能就封锁你,因为你用的是python访问的。后续我会讲如何使用header伪装成浏览器

3、即使使用了上面两种策略,人家仍然封锁你了,那么要用到代理服务器抓数据,让网站不知道你是谁,也就没法封锁你了。


第一种今天已经在案例中示范了,后续我会就着header伪装和代理访问继续写。


请输入标题     bcdef

好了,今天我们继续抓豆瓣电影网,我们这次抓烂片中的电影名,参演演员,评分,评论人数。上代码:

请输入标题     abcdefg

请输入标题     bcdef

import requests 

from bs4 import BeautifulSoup 

import time 

for page in range(90):     

    url = 'https://movie.douban.com/tag/烂片?start={}'.format(page*20)  #urllib.parser     response = requests.get(url).text     

    bsObj = BeautifulSoup(response, 'html.parser')     

    div_tags = bsObj.find_all('div', {'class': 'pl2'})         

    for div_tag in div_tags:         

        try:             

            mov_name = div_tag.find('a').get_text().strip('\n').replace(' ','')                 

            actors = div_tag.find('p').get_text()                           

            rate = div_tag.find('div').findAll('span')[1].get_text()             

            peoplesNum = div_tag.find('div').findAll('span')[2].get_text()[1:-4]                                 with open(r'/Users/apple888/Desktop/movies.txt', 'a+', encoding='utf-8') as f:                 

                content = mov_name + ';' + actors + ';' + rate + ';' + peoplesNum + '\n'                     f.write(content)         

        except:             

            continue         

        time.sleep(1)         

print('good work!')

请输入标题     abcdefg

附上视频,这个视频40分钟,1.4G,上传用了3个钟头。。。。。。https://v.qq.com/txp/iframe/player.html?vid=f0384cle4pi&width=500&height=375&auto=0


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存